home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 03 Demos and Info / XMODEM.TXT < prev    next >
Encoding:
Text File  |  2019-04-13  |  25.5 KB  |  793 lines

  1.  
  2.  
  3.  
  4.                              XMODEM and COMPUSERVE
  5.  
  6.                                  October, 1984
  7.  
  8.  
  9.  
  10.                     NOTE:  XMODEM,  like  the  rest  of  the
  11.                     CompuServe   Information   Service,   is
  12.                     provided  on  an  "as-is,  as-available"
  13.                     basis.
  14.  
  15.  
  16.                              Questions and Answers
  17.                              ---------------------
  18.  
  19.           Question: Why doesn't XMODEM work with my PC-Talk program?
  20.           Answer:   PC-Talk  works   just   fine   with   CompuServe's
  21.                     implementation of the  XMODEM  protocol,  but  you
  22.                     need to be running 8 bits / no parity in order for
  23.                     PC-Talk to do XMODEM.
  24.           See:      Section 4.2
  25.  
  26.  
  27.           Question: I download a file using XMODEM, but all I get  are
  28.                     a bunch of hexidecimal characters (something like:
  29.                     :1800100AB759CDEF7) What I doing wrong?
  30.           Answer:   You need to specify that  you  are  downloading  a
  31.                     binary file, rather than a text file.  You can  do
  32.                     this by appending a "/type:bin"  in  the  download
  33.                     command (for example:
  34.                          dow chess.bin/proto:XMODEM/type:bin )
  35.                     or by selecting transfer type 2 (Binary) from  the
  36.                     download menu.
  37.           See:      Section 3.2
  38.  
  39.  
  40.           Question: I download a file using XMODEM, but all I get is a
  41.                     very short file full of garbage.
  42.           Answer:   You may be trying to download an ASCII (text) file
  43.                     as if it were a binary file.  Append "/type:ascii"
  44.                     to the  filename  in  the  download  command  (for
  45.                     example:
  46.                          dow chess.txt/proto:XMODEM/type:ascii
  47.                     or  select  transfer  type  1  (ASCII)  from   the
  48.                     download menu.
  49.           See:      Section 3.2
  50.  
  51.  
  52.           Question: My   Crosstalk   program   doesn't    work    with
  53.                     CompuServe's XMODEM!
  54.           Answer:   Crosstalk XVI 3.4 has some compatibility  problems
  55.                     with CompuServe, and cannot be used as is.   There
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.                                      - 1 -
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.      XMODEM on CompuServe                                      October 1984
  72.  
  73.  
  74.                     is a patch  in  the  IBM  PC  Sig's  XA5  database
  75.                     (called CISXTK.TXT) which  can  be  used  to  make
  76.                     Crosstalk  work  well  with  CompuServe.    Future
  77.                     versions  of  Crosstalk  should  work  well   with
  78.                     CompuServe.
  79.           See:      Section 4.1
  80.  
  81.  
  82.           Question: My <fill in the blank>  terminal  program  doesn't
  83.                     work with CompuServe's XMODEM, but it  works  just
  84.                     fine with  everybody  else!  What  are  you  doing
  85.                     wrong????
  86.           Answer:   The XMODEM protocol was never  designed  with  the
  87.                     idea of  communicating  over  a  packet  switching
  88.                     network to  large  time  sharing  computers.   The
  89.                     biggest problem  comes  from  the  fact  that  the
  90.                     network introduces delays between the host and the
  91.                     micro and that the host may not be able to respond
  92.                     quickly to the micro's communications.
  93.  
  94.                     Most terminal programs do  work  with  CompuServe,
  95.                     and many that do not can be patched to  work  with
  96.                     CompuServe (e.g., Crosstalk)  by  simply  relaxing
  97.                     the timing parameters in the program.
  98.           See:      Section 3.1
  99.  
  100.           Question: Does  your  XMODEM   implementation   handle   CRC
  101.                     checking as well as checksumming?
  102.           Answer:   Yes.
  103.           See:      Section 2
  104.  
  105.           Question: Where can  I  find  documentation  on  the  XMODEM
  106.                     protocol?
  107.           Answer:   The  closest  thing  to   an   official   document
  108.                     specifying the XMODEM protocol is  a  small  notes
  109.                     file Ward Christensen wrote describing  the  basic
  110.                     protocol.  This file can be found in many  of  the
  111.                     SIGs on CompuServe.
  112.           See:      Reference [1].
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.                                      - 2 -
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.      XMODEM on CompuServe                                      October 1984
  138.  
  139.  
  140.  
  141.  
  142.           0.        Abstract
  143.  
  144.           CompuServe has implemented a version of the XMODEM  protocol
  145.           that allows most XMODEM users to successfully transfer files
  146.           securely between their micros and CompuServe's hosts.   This
  147.           implementation was not and cannot be 100%  faithful  to  the
  148.           original XMODEM specification (see reference [1]),  and  the
  149.           differences between micro to micro XMODEM and micro to  host
  150.           XMODEM has caused some people problems.  The purpose of this
  151.           short article is to describe, in detail, the  most  frequent
  152.           problems people have with micro to host XMODEM, and to offer
  153.           some suggestions on how to overcome these problems.
  154.  
  155.  
  156.           1.        XMODEM's origins
  157.  
  158.           The XMODEM (aka MODEM7) protocol was originally  devised  by
  159.           Ward Christensen as a  protocol  for  communicatons  between
  160.           microcomputers.  As it was originally devised, the user runs
  161.           a program called "MODEM", and  dials  up  another  computer.
  162.           The user then instructs the remote computer to run a program
  163.           called "XMODEM".  XMODEM  and  MODEM  then  use  the  XMODEM
  164.           protocol to transfer files between the two computers.
  165.  
  166.           The XMODEM protocol has several assumptions implicit in  its
  167.           design, and these assumptions are the source of the problems
  168.           people have in using XMODEM protocol on CompuServe.  Some of
  169.           these assumptions are:
  170.  
  171.                o File lengths are exact multiples of 128 bytes.
  172.                o Word size is 8 bits on both computers.
  173.                o Data is transmitted 8 bits, no parity, one stop bit.
  174.                o Both   computers   are   dedicated   (single    user)
  175.                  microcomputers.
  176.                o Both computers are talking  to  each  other  directly
  177.                  over a phone line.
  178.  
  179.  
  180.  
  181.          2.      The XMODEM protocol
  182.  
  183.           The XMODEM protocol is a half duplex protocol --  infomation
  184.           travels in only one direction at once.  The  basic  protocol
  185.           works something like this:
  186.  
  187.                1.  When the receiver is ready to start receiving data,
  188.                    it  transmits  a  <nak>  (negative  acknowledgment)
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                      - 3 -
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.      XMODEM on CompuServe                                      October 1984
  205.  
  206.  
  207.                    character to the sender, and  continues  to  do  so
  208.                    every 10 seconds until:
  209.  
  210.                2.  The sender sends a block.  Each block contains  the
  211.                    block number (modulo 256), 128 bytes of data, and a
  212.                    checksum.  Once the block is sent, the sender waits
  213.                    while:
  214.  
  215.                3.  The receiver verifies that he  received  the  block
  216.                    correctly; if the received checksum  matches,  then
  217.                    the receiver sends  an  <ack>  character,  and  the
  218.                    sender sends the next 128 bytes of the  file  (step
  219.                    2).  If the block was not received correctly --  or
  220.                    if 10 seconds expires before a  complete  block  is
  221.                    received, the receiver sends a <nak>  character  to
  222.                    the sender.  When the sender receives a  <nak>,  it
  223.                    re-transmits the last block.
  224.  
  225.                4.  Steps 2 & 3 are repeated until the end of the file.
  226.                    At the end of the file, the sender sends  an  <eot>
  227.                    character instead of a block of data.
  228.  
  229.                5.  When the receiver sees the <eot>, it sends an <ack>
  230.                    to the  sender,  and  then  the  file  transmission
  231.                    process is complete.
  232.  
  233.  
  234.           There is a variant of the XMODEM  protocol  that  CompuServe
  235.           also supports, called  the  CRC  option.   In  the  original
  236.           XMODEM protocol, the checksum of each  block  was  only  one
  237.           byte long.   This  small  of  a  checksum  (along  with  the
  238.           algorithm used to generate it) allows errors to easily sneak
  239.           into a supposedly error free protocol.
  240.  
  241.           The CRC option works roughly  like  this:   Instead  of  the
  242.           receiver sending out <nak>s at the very beginning, it  sends
  243.           out the letter "C".  If the sender has the  CRC  option,  it
  244.           treats this just like a <nak>,  but  knows  to  compute  the
  245.           two-byte CCITT CRC-16 and add it to the end  of  all  blocks
  246.           instead of the one byte checksum.  If the  sender  does  not
  247.           have the CRC option, then the "C" character has  no  meaning
  248.           to it and is ignored.  The receiver may try about three "C"s
  249.           before deciding that the sender will not  handle  CRCs,  and
  250.           then  the  receiver   transmits   a   <nak>   to   start   a
  251.           checksum-XMODEM file transfer.
  252.  
  253.           3.      XMODEM Problems on CompuServe
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                      - 4 -
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.      XMODEM on CompuServe                                      October 1984
  271.  
  272.  
  273.           Because of the assumptions  made  in  the  XMODEM  protocol,
  274.           various difficulties arise in using XMODEM over  CompuServe.
  275.           Here are some major classes of problems:
  276.  
  277.           3.1     XMODEM Timing
  278.  
  279.           Since  XMODEM  was  originally  devised  for  micro-to-micro
  280.           communications,  it  has  some  problems  fitting  into   an
  281.           environment where one of  the  computers  happens  to  be  a
  282.           mainframe and the two computers are  not  connected  over  a
  283.           simple phone  line  but  via  a  packet  switching  network.
  284.           CompuServe's network can often introduce long delays in what
  285.           should be continuous communications,  as  can  a  very  busy
  286.           host.
  287.  
  288.           When these delays arise, the  microcomputer  running  XMODEM
  289.           may mistake them for a breakdown in  communications.   If  a
  290.           long delay occurs in the middle of a packet -- in the middle
  291.           of the data --  many  XMODEM  implementations  see  that  as
  292.           meaning there has been data lost.  These  delays  result  in
  293.           the following symptoms:
  294.  
  295.                o The receiver cannot  successfully  receive  even  the
  296.                  first block of data.
  297.                o The receiver consistently <nak>s blocks or  <nak>s  a
  298.                  majority of blocks, although eventually receives  the
  299.                  file.
  300.                o The receiver just suddenly gives up in the middle  of
  301.                  a seemingly successful file transfer.
  302.                o The receiver has great difficultly in  receiving  the
  303.                  file, and gives up  anywhere  from  5  to  20  blocks
  304.                  through the  transfer.
  305.                o The file transfer proceeds very smoothly with several
  306.                  successfully transfered blocks when all of  a  sudden
  307.                  every block transmitted is rejected (<nak>ed) by  the
  308.                  host.
  309.  
  310.  
  311.           Note that all of these problems are  indistinguishable  from
  312.           other communications problems (e.g., noisy phone lines,  bad
  313.           parity settings).  A key question  to  ask  people  who  are
  314.           having XMODEM problems is "Have you ever successfully done a
  315.           XMODEM transfer to CompuServe?"  If the answer is yes,  then
  316.           the following problems may be at fault.
  317.  
  318.           3.1.1   Delays within blocks
  319.  
  320.           The XMODEM documentation [1] recomends that a  gap  of  more
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                      - 5 -
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.      XMODEM on CompuServe                                      October 1984
  337.  
  338.  
  339.           than 1 second be treated as a breakdown  of  communications.
  340.           On a microcomputer, this makes sense -- there is  no  reason
  341.           for a dedicated micro computer to suddenly stop transmitting
  342.           and then resume.   But on CompuServe's systems and  network,
  343.           a  1  second  delay  is  not  only  possible,  but   happens
  344.           frequently!
  345.  
  346.           If the microcomputer decides that this delay is a  breakdown
  347.           of some sort, it will send a <nak> to CompuServe, requesting
  348.           that the block be retransmitted.  Unfortunately, the rest of
  349.           the first block is still "in  the  pipe"  --  and  when  the
  350.           receiver gets this block the receiver may do  anything  from
  351.           abort the transfer to  ignore  it.   Assuming  the  receiver
  352.           handles the rest of the block gracefully (and  the  rest  of
  353.           the block doesn't look like the start of another block), the
  354.           host will see the <nak> the receiver sent and retransmit the
  355.           block.   If  there's  a  delay  in  the   middle   of   that
  356.           transmission, the receiver will <nak>  it  too,  and  so  on
  357.           forever.
  358.  
  359.           Thus, when the receiver is too sensitive to  delays  in  the
  360.           middle of transmissions, either the receiver gives  up  very
  361.           quickly or the receiver <nak>s every block transmitted.
  362.  
  363.           3.1.2   Delays between blocks
  364.  
  365.           Fortunately, most implementations  of  the  XMODEM  protocol
  366.           aren't that sensitive to delays in  the  middle  of  blocks.
  367.           But other delays can cause problems too.  When  a  block  is
  368.           received by the microcomputer, for example, the  micro  will
  369.           almost immediately <ack> or <nak> the block and wait for the
  370.           next block to be sent.  The XMODEM specification [1]  states
  371.           that if the next block does not arrive  within  10  seconds,
  372.           the receiver should send its <ack> or <nak> again.
  373.  
  374.           Ten seconds is not a  very  long  time,  however,  when  the
  375.           network and/or mainframe is  heavily  loaded.   Often,  what
  376.           will happen is that the <ack> or <nak> will  arrive  at  the
  377.           host, the host will begin transmission of  the  next  block,
  378.           but the block won't make it to the micro in time.  Then, the
  379.           micro transmits a <nak>, even though the host has  correctly
  380.           received the first <ack>/<nak>.
  381.  
  382.           What happens, then, is that a   <nak>  enters  the  network,
  383.           even though the host has seen and  responded  to  the  first
  384.           <ack> or <nak>.  After that, things can easily degrade.  The
  385.           host may find  itself  one  block  ahead  of  the  receiver,
  386.           causing the receiver to give up on the spot.  The  host  may
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                      - 6 -
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.      XMODEM on CompuServe                                      October 1984
  403.  
  404.  
  405.           find itself stuck one <ack> or <nak>  behind  the  receiver,
  406.           which could result in a successful, although very difficult,
  407.           file transfer.  And the network  problems  could  be  severe
  408.           enough -- or the micro sensitive enough --  that  the  micro
  409.           goes through about 6 or so blocks (mostly <nak>s with a  few
  410.           <ack>s) and gives up.
  411.  
  412.           3.1.3   Network Flow Control
  413.  
  414.           When the user is sending data to CompuServe, the  node  will
  415.           send an XOFF (^S) character to the micro  if  the  micro  is
  416.           transmitting faster than the node can send the data  to  the
  417.           host.  This happens even during an XMODEM transfer (although
  418.           very infrequently).  If the micro misinterprets the ^S as  a
  419.           <nak>, it will immediately retransmit the block  --  causing
  420.           the network to send even more ^Ses and the micro to see even
  421.           more naks.  Usually what happens is that  the  micro  thinks
  422.           that every block it transmits  is  being  <nak>ed,  and  the
  423.           micro gives up almost immediately.  This problem can  strike
  424.           anytime during an upload to the  host,  and  things  can  be
  425.           proceeding very smoothly upto that point.
  426.  
  427.           3.1.4   Timing suggestions and hints
  428.  
  429.           To overcome and avoid these  problems,  an  XMODEM  protocol
  430.           implementation should wait 20 seconds before sending a <nak>
  431.           on a lost block, wait at least 10 seconds during  delays  in
  432.           the middle of a block, and honor (or at least  ignore)  flow
  433.           control from the node during uploading of files.
  434.  
  435.           Many programs which have timing problems with CompuServe can
  436.           be patched to relax their timing  restrictions.   A  typical
  437.           place to look is for calls to a "timed input" routine (where
  438.           the routine will only  wait  so  long  for  a  character  to
  439.           arrive).  Either patching that routine (make it  wait  twice
  440.           as long, perhaps)  or  patching  the  code  that  calls  the
  441.           routine (to use a longer time out value) would help to  make
  442.           the XMODEM work on CompuServe.
  443.  
  444.           3.2     Host file Format Concerns
  445.  
  446.           3.2.1   The Host file format problems
  447.  
  448.           While almost all microcomputers  have  an  8  bit  word  (or
  449.           multiple of 8 bits), CompuServe has a  36  bit  word.   Text
  450.           files are stored with 7 bit bytes  (5  of  them  per  word).
  451.           While this poses no problems for pure  text  files  (as  the
  452.           ASCII character set is defined for only  7  bits  of  data),
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                      - 7 -
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.      XMODEM on CompuServe                                      October 1984
  469.  
  470.  
  471.           "binary" files cannot be stored as is on  our  host  systems
  472.           (an example of binary data would be an  executable  program,
  473.           or a WordStar file).  Files in which 8 bits of data per byte
  474.           must be preserved -- binary files -- are stored in a special
  475.           file format (currently Intel hex format).
  476.  
  477.           Thus, when people upload or  download  to  CompuServe  using
  478.           XMODEM, they are asked:
  479.  
  480.                   Transfer types available,
  481.  
  482.                    1 - ASCII  (7 - bit)
  483.                    2 - Binary (8 - bit)
  484.  
  485.                   Please make a selection:
  486.  
  487.           People often pick the wrong answer, the results  are  either
  488.           an unsuccessful or useless upload or download.
  489.  
  490.           3.2.2   The correct approach
  491.  
  492.           For uploading, the choice of  a  transfer  type  can  be  as
  493.           simple as: "If it's a text file, use ASCII.   If  it's  not,
  494.           use binary."
  495.  
  496.           For downloading, the correct transfer type is the  same  one
  497.           that was used to upload the file,  i.e.,  if  the  file  was
  498.           uploaded with an ASCII transfer it must be  downloaded  with
  499.           an ASCII transfer; if the file was uploaded  with  a  binary
  500.           transfer it must be downloaded with a binary transfer.
  501.  
  502.           At the moment, it is a problem for users to determine  which
  503.           type the file was uploaded in.  Many SYSOPs have the  file's
  504.           description specify the correct  approach  for  downloading.
  505.           Other SYSOPs enforce the convention that files with a ".BIN"
  506.           extension should be  downloaded  with  the  binary  transfer
  507.           while other files should use the  ASCII  transfer.    It  is
  508.           best to ask what policy is in use if there is some doubt.
  509.  
  510.           In the future, the SIG program will be improved so that  the
  511.           choice of which  transfer  type  won't  be  asked  during  a
  512.           download.
  513.  
  514.           3.2.3   What happens if...
  515.  
  516.           The user downloads a binary file with ASCII mode?
  517.  
  518.                The user gets the Intel hex format of  the  file.   The
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.                                      - 8 -
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.      XMODEM on CompuServe                                      October 1984
  535.  
  536.  
  537.                downloaded file can be salvaged by use of a program  to
  538.                convert Intel hex format back  to  binary.   Currently,
  539.                the IBM Novice  forum  (PCS-129)  has  such  a  program
  540.                available.
  541.  
  542.           The user downloads an ASCII file in binary mode?
  543.  
  544.                The user usually receives one or two blocks of  garbage
  545.                data, at best.
  546.  
  547.           The user uploads a binary file in ASCII mode?
  548.  
  549.                The file transfer will not succeed, and any files  left
  550.                over after the upload will be useless.
  551.  
  552.           The user uploads an ASCII file in binary mode?
  553.  
  554.                The file transfer will succeed, but the  uploaded  file
  555.                will be encoded  into  Intel  hex  format.   Thus,  any
  556.                people who download the file in ASCII mode or  use  the
  557.                Read command will receive a hex representation  of  the
  558.                file.  People who download the  file  in  Binary  mode,
  559.                however, will be able to receive the file correctly.
  560.  
  561.  
  562.           4.      XMODEM and ....
  563.  
  564.           4.1     CROSSTALK (XTALK), version 3.4
  565.  
  566.           Crosstalk has its timing  parameters  set  too  sensitively.
  567.           Thus, it is virutually impossible to perform transfers using
  568.           Crosstalk.  MicroStuff,  the  creators  of  Crosstalk,  have
  569.           provided a patch to their software which allows it work with
  570.           CompuServe.  This patch can be found in  the  IBM  PC  SIG's
  571.           database (see reference [2]).
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.                                      - 9 -
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.      XMODEM on CompuServe                                      October 1984
  601.  
  602.  
  603.           4.2     PC-TALK III
  604.  
  605.           PC-Talk will work fine with CompuServe, so long as the  user
  606.           is running PC-Talk in 8 bits / no  partiy  mode.   The  most
  607.           recent version(s) of PC-Talk are set up to switch to 8  bits
  608.           / no parity automatically on an XMODEM transfer,  but  these
  609.           versions are still rare in the user community.
  610.  
  611.  
  612.           By default, CompuServe communicates in 7 bits, even  parity.
  613.           Thus, before PC-Talk can be thrown into 8  bits  no  partiy,
  614.           the user must tell CompuServe to talk 8 bits no parity.
  615.  
  616.           The steps involved in making this change are as follows:
  617.  
  618.  
  619.                1.  The user must log into CompuServe as usual (i.e., 7
  620.                    bits even parity).
  621.  
  622.                2.  The user must then run the Default  program.   This
  623.                    program can be reached either by typing "R  DEFALT"
  624.                    from command mode in the personal  file  area  (the
  625.  
  626.                   "OK" prompt), or by typing "GO DEFALT" from any "!"
  627.                    prompt.
  628.  
  629.                3.  In Default, the user should select option #5, "View
  630.                    or Change current terminal parameters."   Then,  he
  631.                    should  select  option  #8,  "Parity  is",   change
  632.                    parity to ZERO, and then exit the default  program,
  633.                    making all changes permanent.
  634.  
  635.                4.  At this point, PC-Talk can be switched into 8  bits
  636.                    no parity.  On some modems (but  not  most  of  the
  637.                    Hayes line of modems), doing this switch will cause
  638.                    the modem to hang up.  Thus, it may be advisible to
  639.                    log off CompuServe before switching to  8  bits  no
  640.                    parity.
  641.  
  642.                5.  Once PC-Talk is  running  in  8  bit  mode,  it  is
  643.                    possible  to  easily  upload  and  download   using
  644.                    XMODEM.
  645.  
  646.  
  647.  
  648.           The next time the user dials into CompuServe (with  PC  Talk
  649.           set to 8 bits no parity) and types control-c  to  catch  the
  650.           system's attention, the "User ID:" prompt will  be  garbled.
  651.           Once  the  system  recognizes  the  User  ID,  however,  the
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.                                      - 10 -
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.      XMODEM on CompuServe                                      October 1984
  668.  
  669.  
  670.           password prompt will be  presented  in  clear  text.   Thus,
  671.           users should just muddle through the garbled User ID  prompt
  672.           and everything will work well after that.
  673.  
  674.  
  675.           If the user's modem does not hang up when the parity setting
  676.           is changed, it is also possible  to  change  to  8  bits  no
  677.           parity just before performing an XMODEM transfer, and change
  678.           back to 7 bits even parity when it  completes.   This  is  a
  679.           rather  involved,  manual  process,  though,  and   is   not
  680.           recomended.
  681.  
  682.           Note: Putting PC-Talk into 8 bits  no  parity  is  necessary
  683.           even to upload or download ASCII files.
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                                      - 11 -
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.      XMODEM on CompuServe                                      October 1984
  734.  
  735.  
  736.                                    References
  737.                                    ----------
  738.  
  739.  
  740.           [1]  "Modem Protocol Overview" by Ward  Christensen.   Found
  741.                various places throughout  the  system,  including  the
  742.                Programmer's   SIG's   XA2   database   in   the   file
  743.                "PROTO1.DOC".  This document is the starting point  for
  744.                anyone  desiring  to  implement  the  XMODEM  protocol,
  745.                although the changes  and  suggestions  presented  here
  746.                should be kept in mind.
  747.  
  748.           [2]  Crosstalk XVI 3.4 patch.  Found in the  IBM  SIG's  XA5
  749.                database in the file CISXTK.TXT.   This  requires  some
  750.                sophistication on the part of the user, as it  involves
  751.                patching Crosstalk using the PC-DOS debug program.
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.                                      - 12 -
  791.  
  792.  
  793.